DPR soubor was: Resource a obrazek
Otázka od: Lebeda David
17. 9. 2002 11:11
> Nikdy nic neupravuj ve vygenerovanem .dpr souboru.
IMHO to nekdy jinak nejde, i kdyz v danem pripade zkusim
navrhovana reseni. Ale jak resit treba hlidani jedne instance,
rekneme pomoci FindWindow nebo mutexu, to uz je celkem jedno,
kdy chceme, aby vytvareni hlavniho formu se delo az teprve tehdy,
kdyz uz se vi, ze aplikace neni spustena jako dalsi instance?
Veskere Application.CreateForm je pak treba strcit do nejakeho ifu.
David Lebeda
Odpovedá: Ondrej Kelle
17. 9. 2002 12:34
>> Nikdy nic neupravuj ve vygenerovanem .dpr souboru.
>
> IMHO to nekdy jinak nejde, i kdyz v danem pripade zkusim
> navrhovana reseni. Ale jak resit treba hlidani jedne instance,
> rekneme pomoci FindWindow nebo mutexu, to uz je celkem jedno,
> kdy chceme, aby vytvareni hlavniho formu se delo az teprve tehdy,
> kdyz uz se vi, ze aplikace neni spustena jako dalsi instance?
> Veskere Application.CreateForm je pak treba strcit do nejakeho ifu.
a nie je s tym ziadny problem:
program adbd;
uses
Forms,
JclAppInst,
MainForm in 'MainForm.pas' {FormMain},
AboutForm in 'AboutForm.pas' {FormAbout},
ChildForm in 'ChildForm.pas' {FormChild},
ADBData in 'ADBData.pas',
OptionsForm in 'OptionsForm.pas' {FormOptions},
ADBDConst in 'ADBDConst.pas',
SQLForm in 'SQLForm.pas' {FormSQL};
{$R *.res}
begin
with JclAppInstances('{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}') do // tam
mam nejaky GUID
if CheckInstance(1) then
begin
Application.Initialize;
Application.Title := 'ADB Desktop';
Application.CreateForm(TFormMain, FormMain);
Application.Run;
end
else
begin
SwitchTo(0);
SendCmdLineParams('TFormMain', 0);
end;
end.
Pravdupovediac, editovanie .dpr suborov je vo firme, kde robim, vcelku bezna
vec. <g>
HTH
TOndrej
Odpovedá: Petr Vones
17. 9. 2002 17:36
From: "Ondrej Kelle" <O.Kelle@digitalpublishing.de>
> Pravdupovediac, editovanie .dpr suborov je vo firme, kde robim, vcelku bezna
> vec. <g>
Jasne, pokud presne vis co delas a jsi schopen odhadnout / resit dusledky.
Bohuzel to obcas dopada tak, ze se pak nekdo divi 'Proc mi to nefunguje !?'.
Takze zasada je nic neupravovat a pokud uz ano, tak pouze na vlastni riziko a
s tim ze to muze mit nepredvidatelne vedlejsi efekty.
Petr Vones
Odpovedá: Jan Sebelík
18. 9. 2002 7:50
> From: "Ondrej Kelle" <O.Kelle@digitalpublishing.de>
> > Pravdupovediac, editovanie .dpr suborov je vo firme, kde robim, vcelku
bezna
> > vec. <g>
> Odesílatel: Petr Vones <pvones@mbox.vol.cz>
> Jasne, pokud presne vis co delas a jsi schopen odhadnout / resit dusledky.
> Bohuzel to obcas dopada tak, ze se pak nekdo divi 'Proc mi to nefunguje !?'.
> Takze zasada je nic neupravovat a pokud uz ano, tak pouze na vlastni riziko a
> s tim ze to muze mit nepredvidatelne vedlejsi efekty.
Jasne Petre, v zasade s tebou souhlasim, ale striktni "nic neupravovat" asi
nelze.
Alespon zakladni strukture generovaneho dpr by mel kazdy rozumet a vedet, co si
muze dovolit.
Napr. vyhodit radek Application.CreateForm...
misto toho, abych lezl do Project/Options a v nejakem dialogu prehazoval
formulare.
Anebo ukoncit program, pokud se mi po "AutoCreate" nepripoji datovy modul k
databazi.
Anebo zobrazit Login formular pred vytvorenim hlavniho formulare.
atd.
Pravda ovsem je, ze jsem taky videl .dpr, ktery mel asi 2000 radku "normalniho"
kodu.
To bylo sileny se tim probrat...
Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 569 (0776 347735)
=========================================